package com.mentaleye.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.mentaleye.dal.model.Prompt;
import com.mentaleye.enums.CommonStatus;

public interface PromptService {
	/**
	 * 添加提醒  角色或者单独人员
	 * @param promptContext  提醒显示的内容
	 * @param endDate  提醒发生时间
	 * @param promptRoleId  提醒角色编号 可为空
	 * @param promptPersonId  提醒人员编号  可为空。角色和人员不可都为空
	 * @param commonStatus  提醒类型枚举
	 * @return
	 */
	public boolean promptSave(String promptContext, Date endDate, String promptRoleId, String promptPersonId,
			CommonStatus commonStatus);
	/**
	 * 添加提醒  所有人
	 * @param promptContext  提醒显示的内容
	 * @param endDate  提醒发生时间
	 * @param commonStatus  提醒类型枚举
	 * @param isAllPerson  是否提醒所有人   1是0否
	 * @return
	 */
	public boolean promptSave(String promptContext, Date endDate,
			CommonStatus commonStatus);
	/**
	 * 
	 * @param classId 班级编号
	 * @param prompt  提醒内容。调用实体类中的构造方法。传内容，结束日期，提醒类型的编号（课程编号等）
	 * @param commonStatus  提醒类型枚举
	 * @return
	 */
	public boolean promptSave(int classId, Prompt prompt, 
			CommonStatus commonStatus);

	/**
	 * 通过登录人员的id和提醒类型，查询所有符合条件的提醒
	 * 
	 * @param promptRoleId
	 * 			    提醒角色编号
	 * @param promptPersonId
	 *            提醒人员编号
	 * @param promptType
	 *            提醒类型编号
	 * @return
	 */
	public List<Map<String, Object>> queryPromptByTypeAndPerson(List<Integer> promptRoles, String promptPersonId, Map<String, Object> map);
	/**
	 * 查询未读的提醒条数
	 * @param promptRoles
	 * @param promptPersonId
	 * @return
	 */
	public List<Map<String, Object>> queryPromptCount(List<Integer> promptRoles, String promptPersonId);
}
